1
Redéfinir l'objet orienté programmation pour la programmation système
AI034Lesson 17
00:00

Redéfinir l'OO en Rust consiste à passer des hiérarchies de classes rigides vers un modèle centré sur séparation données-comportement. Alors que les langages traditionnels du système s'appuient sur des arbres d'objets complexes, Rust atteint les objectifs de conception orientée objet — encapsulation et polymorphisme — en utilisant traits et des modules afin de privilégier la sécurité mémoire sans surcharge à l'exécution.

1. Remettre en question la hiérarchie

Rust évite explicitement l'héritage d'implémentation afin d'éviter le problème du classe de base fragile problème. À la place, il privilégie la composition et les Traits pour définir un comportement partagé entre des types différents. Un « objet » ici est une combinaison de données (structs) et de procédures (blocs impl), vérifiée au moment de la compilation.

Classe de baseHiérarchie traditionnelleTrait (comportement)Composition Rust« Les programmes orientés objets sont composés deobjets. Un objet regroupe à la fois les données etles procédures qui opèrent sur ces données. »— GoF, page 491

2. Concurrence et état comme type

Rust gère la concurrence principalement via la bibliothèque standard (Send/Sync traits) plutôt que par le cœur du langage. Pour maximiser la sécurité, l'algorithme Algorithme État-Comme-Type encode des états distincts en types différents. Les transitions retournent de nouvelles instances, déplaçant la logique des instructions à l'exécution si vers des exigences au moment de la compilation.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>